RHEL下DB2 V9.7数据库服务器的安装与配置

本文使用的是文本方式安装DB2 V9.7

主要流程:
(1)解压安装包
(2)执行安装程序
(3)创建3个用户,分别是实例用户、受限用户、管理用户
(4)创建一个管理服务器
(5)创建一个实例
(6)配置DB2参数

1、安装DB2准备工作
获得安装包v9.7_linuxia32_server.tar.gz
执行解压缩 tar -zxvf v9.7_linuxia32_server.tar.gz

2、执行安装程序
进入到解压后的server文件夹
cd / server
./DB2_install
选择”否“

3、新建组和用户
创建组

#groupadd db2iadm1
#groupadd db2fadm1
#groupadd dasadm1

创建用户

#useradd -g db2iadm1 -m -d /home/db2inst1 db2inst1
#useradd -g db2fadm1 -m -d /home/db2fenc1 db2fenc1
#useradd -g dasadm1 -m -d /home/dasusr1 dasusr1

修改用户密码

#passwd db2inst1
#passwd db2fenc1
#passwd dasusr1

4、创建管理服务器

# /opt/ibm/DB2/V9.7/instance/dascrt -u dasusr1

创建一个实例

#/opt/ibm/DB2/V9.7/instance/DB2icrt -a SERVER -u db2fenc1 db2inst1

5、配置DB2
(1) 对DB2进行配置

#vi /etc/rc.local

在touch /var/lock/subsys/local的后面加上以下内容

#su - DB2inst1 -c "DB2start"

(2) 修改sysctl.conf文件

#vi /etc/sysctl.conf
kernel.msgmni = 1024
kernel.sem = 250 256000 32 1024

(3) 修改limits.conf文件,修改文件中soft nofile的值

#vi /etc/security/limits.conf
* soft nofile 10240

10240 打开文件的最大数目
改动完成后要重新启动服务器

以上是安装全过程,至此如果我们还需要添加多用户,只需按下列步骤操作(只演示一个用户的例子):

  1. 添加一个新用户zry到db2iadm1组:

    useradd -g db2iadm1 -m -d /home/zry zry
    passwd zry (为用户设置密码)

2.切换到root 用户为zry 建立实例:

su root
/opt/ibm/DB2/V9.7/instance/DB2icrt -a SERVER -u zry zry *(实例名长度不能超过八位)

这样就为zry 用户创建了一个名为zry实例,而这个实例的管理员也就是zry.
切换到zry用户下就可以启动和管理zry实例了

su zry
db2start

配置DB2 V9.7客户端与服务器端通信
我们要让程序链接上DB2服务器首先必须在本机上安装DB2 V9.7 客户端,编目服务器上的数据库到本地客户端,这样我们就可以在程序中直接操作DB2数据库了.

  1. 安装DB2 V9.7 客户机

………图形界面….过程省略……

  1. 配置DB2 服务器参数

(1) 使用用户zry登陆系统. 启动对应的实例:

db2start
cat /etc/services 查找此文件。新建的用户一般会出现在最后几行:
DB2_zry 60032/tcp
DB2_zry_1 60033/tcp
DB2_zry_2 60034/tcp
DB2_zry_END 60035/tcp
发现 DB2_zry 60032/tcp. 端口为: 60032 / tcp协议.

(2) 查找DB2配置文件中的端口配置

db2 get dbm cfg | grep SVCENAME

如出现:
TCP/IP Service name (SVCENAME) =
SSL service name (SSL_SVCENAME) =
说明端口没有配置.使用以下命令:

db2 update dbm cfg using svcename 60032

把DB2_zry的端口添加进去.
并使用db2set db2comm=tcpip 命令,设置为TCPIP协议
重启实例:

db2stop db2star
db2 get dbm cfg | grep SVCENAME

结果:
TCP/IP Service name (SVCENAME) = 60032
SSL service name (SSL_SVCENAME) =
db2set –all

结果:
[i] DB2COMM=tcpip
netstat -an | grep 60032
结果:
tcp 0 0 0.0.0.0:60032 0.0.0.0:* LISTEN
出现以上三条结果,说明服务器配置已经成功,60032端口正在被监听.

(3) 客户端编目
客户端进入db2cmd,
(3.1) 通过tcpip协议 端口进行编目节点( ibmClass 是远程主机名,也就是服务器主机名, 172.x.x.x 是服务器IP)

db2 catalog tcpip node ibmClass remote 172.24.10.151 server 60032
db2 list node directory:

节点目录
目录中的条目数 = 1
节点 1 条目:
节点名 = IBMCLASS
注释 =
目录条目类型 = LOCAL
协议 = TCPIP
主机名 = 172.24.10.151
服务名称 = 60032
出现以上结果则表明编目节点成功

(3.2) 通过节点编目数据库到本机 (假设实例里存在SAMPLE数据库)

db2 catalog db sample at node ibmClass
db2 list db directory

数据库 1 条目:
数据库别名 = SAMPLE
数据库名称 = SAMPLE
节点名 = IBMCLASS
数据库发行版级别 = d.00
注释 =
目录条目类型 = 远程
目录数据库分区号 = -1
备用服务器主机名 =
备用服务器端口号 =

出现以上结果则表明编目数据库成功。
现在,我们可以在本机直接操作sample数据库了. 可以直接在db2cmd里写测试语句进行相应的测试.(注意: 记得操作数据库需要先connect哦. 如下:
db2 connect to sample user zry(用户) using ibm.zhourongyu(密码),需要拥有实例权限的用户才可以,在这里也就是zry 用户.)
使用JAVA程序连接DB2V9.7测试

我把测试程序也写上来供大家参考,和Mysql区别不大………..

import java.sql.*;

/**

* @Create Time:2010-8-31 下午21:43:57

* @author ZhouRongyu

* © 2010-2015 zhourongyu. All rights reserved

*/

public class JDBCConnectTest {

// Connection to DB2 V9.7

private static Connection newcon = null;

public static void main(String[] args)

{

try {

ConnectV9_7();

} catch (Exception ex) {

ex.printStackTrace();

}

}

private static void ConnectV9_7()

{

try {

Class.forName("com.ibm.db2.jcc.DB2Driver");

newcon = DriverManager.getConnection(

"jdbc:db2://172.24.10.151:60032/sample",

"zry","ibm.zhourongyu");

newcon.setAutoCommit(false);

Statement stmt = newcon.createStatement();

String selstr = "select empno,firstnme,job from employee where empno=000010";

ResultSet rs = stmt.executeQuery(selstr);

while (rs.next()) {

System.out.println(rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3));

}

newcon.commit();

rs.close();

stmt.close();

} catch (Exception ex) {

ex.printStackTrace();

}

}

}

执行结果:
000010 CHRISTINE PRES